Many of the links that used to point to files on this site have been adjusted to point to our new home on developerWorks, including the FAQ, contributors list, downloads, etc.
I hope to see you over at developerworks; look there for news of further developments. The above URL is for the main entry point; the Jikes Project pages, similar in structure to our current pages, can be found at http://www10.software.ibm.com/developerworks/opensource/jikes/project.
-d
, -depend
+F
+F
and -depend
revisedjikes.htm
) has been revised to include an expanded
explanation of the +F
and -depend options.
The revised version is currently only available via our Research web site, as we are moving the CVS tree over to our new home.
google.com
now available, good job for JikesSlashdot
just ran a story that the new search-engine
google.com
is now officially up. It seems to do a pretty
good job for Jikes.
We are designing and building a multi-tier java application in which we use Jikes to compiled the sources. We recently ran into a problem that had us baffled for several weeks but we finally solved last thursday.Our development group uses NT, Windows 95, Linux and OS/2 PCs. We test the middle tier components on OS/2 and AIX. Client components run mainly on Windows 95, but we also test on Linux and OS/2 and NT.
The application would work smoothly on most of the developer's systems but when we moved the middle tier to AIX, some clients were have problems with messaging classes that were being shipped from the server to the client and generating exceptions. We could not isolate the problem. When it did show up, it was always there, but when it would show up was baffling.
Finally at the 11th hour before user training we found the problem: different versions of Jikes were being used for different OS's and/or client vs middle tier components. Once we used the same Jikes compiler across the board the problem went away. Some of us had 0.55, other 1.02.
So, if you are having unusual problems with distributed applications, double check to make sure the test code is all built with the same version of Jikes.
Jikes has been and continues to be a very useful and important tool. This is just a caution based on our experience.
Brad Smith
alt.sysadmin.recovery
thread re Jikes' error recovery and reportingdeja.com
, the
following discussion about Jikes' error recovery and reporting. When
I showed it to Philippe, he remarked the main motivation for the
spell-checking is to help users who have forgotten the convention of
identifier names with an initial lower case letter; for example, to
note that ToString
should be toString
Forum: alt.sysadmin.recovery Subject: Re: Buzzword Check Date: 1999/09/20 Author: Paul TomblinIn a previous article, michael@farmasi.uit.no said: >Getting rid of the useless "there's a missing semicolon on line blah, aborting >compilation" errors was reason enough to give up Pascal. Quickly. If the >parser is "intelligent" enough to recognize *what* is missing, why doesn't >it just *insert* the symbol (and warn me about it) instead of aborting >compilation? Luser-language implemented luserish... I've only seen two compilers that attempt to do that. One of them I used 20 years ago, and it was called "SP/K", and it was a subset of PL/1. Every attempt it made to "fix" the compiler errors was guaranteed to cause billions more compilation errors further on. Once it made an attempt to "fix" something, you couldn't trust any more compiler messages in the rest of the file, because most of them were caused by the "fix". The second one is "jikes", the hyperfast java compiler from IBM. It only attempts a fix when it's something trivial like a missing semi-colon, and it does a pretty good job of figuring out where it belongs. An even cooler feature is when it says something like "I see you've used an undeclared variable `foob' on line 227. There is a declared variable `food', maybe that's what you intended." The amount of effort it goes through to find similar variables and methods is startling. >> Forum: alt.sysadmin.recovery >> Thread: Buzzword Check Subject: Re: Buzzword Check Date: 1999/09/20 Author: Alan J Rosenthal ah, I used sp/k briefly, at about that time... say no more... I switched to real pl/1 quickly, although I then had to do without the "picture" formatting option (like BASIC's "PRINT USING").. I remember sitting in the corner between keypunches with a pl/1 manual borrowed from the consultants' desk trying to find its analogue, before I concluded it was just not available... ok I'll admit I learned pl/1 via sp/k, and so did you it sounds like... >There is a declared variable `food', You seem to think this is cool, but I think it's stupid. Mostly I think that this whole concept of trying to compile what the user might have meant instead of what they said is obsolete. The only use for error recovery these days is to be able to give people the full list of error messages in one go, or at least a big chunk of them so that they don't have to type "make" once per error however minor. So "undeclared variable" suffices in this case, and move on, and stop trying to generate code because you're going to exit with a fatal error anyway. In the old days where that missing semicolon meant that after you retyped the punch card you had to submit your deck and wait another two hours (or even ten minutes), the "guessing" behaviour got us something. I'm astonished that a modern compiler does it, although given that a modern compiler does do it I'm not astonished that it's something from IBM, which is not a company known for moving with the times. Subject: Re: Buzzword Check Date: 1999/09/20 Author:Paul Tomblin Ah, but unlike sp/k jikes doesn't then try and generate code with it's attempted fixups, it just generates messages. The second thing I mentioned (finding close but not quite variable names) is just part of the diagnostic message, it doesn't actually try and compile with whatever it guessed. Which is fine, because if it did, you know that would lead to 450 billion cascading messages because the types didn't match, etc.
This version adds the option -Xdepend
. It does the same
thing as -depend
, and was added for 1.2 JDK compatibility.
A bug uncovered navigating the troubled waters of PR 490 was of sufficient severity to justify the release of a new version. We also recently noted some erratic behavior using incremental compilation, and so have temporarily disabled the '++' option while we sort things out.
Though the new developerWorks open-source section will not be officially announced for a couple of weeks, we are announcing it now to the Jikes community -- to let you know what's going on, and to ask for your help, patience and understanding while we work with the developerWorks staff to bring up the Jikes portion of the site. We would appreciate your discretion about spreading the news, as we don't wish to steal any of the thunder that is undoubtedly being planned by our PR people for the formal announcement.
The Jikes Project will be managed by the Core Team, which will be responsible for the CVS source tree and other content of the Jikes Project section of developerWorks. The current members are Philippe Charles, Michael Ernst, David Shields and Vadim Zaliva. The Core Team elects Contributors and new members of the Core Team.
The project's new site will provide:
Our "public address" -- the one to be used in documentation and in informal discussion -- will be "Jikes Project at http://ibm.com/developerworks/opensource". However, we will not be using the primary developerWorks' server, but will share a separate Linux-based machine with the other open-source projects. The main page URL is http://www10.software.ibm.com/developerworks/opensource/jikes/index.html and the URL for the project-owned pages is http://www10.software.ibm.com/developerworks/opensource/jikes/project/. I'm told these URLs should appear soon; as soon as they do, we will start a "News" section there about the transition process.
You should continue to use our currrent site (http://ibm.com/research/jikes) to obtain news, to download files, and to report bugs -- we don't want to move all the work over until everything is in place. We plan no further releases until the CVS tree has been moved, unless a real "show-stopper" bug surfaces.
Problem Report Resolved:
Problem Reports Resolved:
Problem Reports Resolved:
Problem Reports Resolved:
Jikes is also included in the Debian and FreeBSD distributions.
Whew! Finally! You should now be able to access a copy of the master Jikes CVS repository and check stuff out from it (though not check anything in). It's updated every six hours. CVSWeb is also available on it. Please send me mail if you encounter any problems; there may still be a few glitches.
The site, Sourcery.Org,
also includes an interesting free-source participation survey.
The URL's for Jikes-related features on his site are:
Sourcery Jikes Area
Web view of Jikes CVS repository
Read-only Jikes CVS Mirror Access
Ken also rendered early service to Jikes in setting up our mail-list server.
Problem Reports Resolved:
This version also
includes a new version of the FAQ (jikes.htm
).
A "Provides: jikes" entry has been added to jikes.spec
, at the suggestion of
Shane Owenby, based on a recent
discussion in the rpm
mailing list.
Problem Reports Resolved:
clone()
.
IINC
opcode can be used.
WIDE
instruction is needed
-d
.
Alert readers will note that this version is v1.01
and not the v0.56
that would be expected. We decided
that, having put out more than 50 releases since late 1996, this was
a good time to end the "early test phase".
RPM
(I found
Henner Zeller's spec file very helpful). This led to a review of the
current build/download process, and has resulted in the following
changes:
RPM
(RedHat 5.2, glibc,
intel) and SRPM
files for downloading. Note that these files
have suffix .bin
appended, as our servers have already reserved the file type
.rpm
for RealAudio files.
news.htm
based on the "Jikes News"
document, and included it in the list of documentation files.
README.TXT
files to be just README
.
Makefile
to Makefile.hand
since
running ./configure
creates a file Makefile
.
The following is from Mike Goldman, a member of the Debian team, in response to my query about their reaction to the new license:
The consensus opinion seems to be that the new Jikes license is DFSG-compliant, and consequently it is planned that Jikes *will* ship in the main Debian distribution (rather than contrib or non-free). It is already in the main "potato" archive. There has been some concern expressed that Jikes is "incompatible" with the GPL (the GNU "General Public License") -- that is, GPL source cannot be legally combined with Jikes source -- but that is not in and of itself fatal.
Problem Reports Resolved:
segment.cpp
and segment.h
This version includes two new files; the build-related files have been updated. If you are using your own makefile then you will have to make the corresponding additions. These files support new function that does a better job avoiding redundant entries in the constant pool.
Problem Reports Resolved:
This version includes revised code generation for try/catch/finally
that more closely
follows the examples and description in the Java Virtual Machine Specification. Previous versions of Jikes generated
bytecode that in some cases included instructions that were unreachable. Even though they passed verification
on most platforms, problems with verification on the Solaris platform suggested a careful revision was in
order.
bool.h
and unicode.h
removedThese files are no longer needed, and the build-related files have been updated. If you are using your own makefile
then you will have to remove any references to bool.h
or unicode.h
.
-Xstdout
-Xstdout
to request
that error messages be written to the standard output file; by
default they are now written to the standard error file.
jikes.spec
to the set of source
files to help those wishing to build their own RPM versions.
bool
when compiling Jikes"class C implements C.I"
swing
:
class C implements C.I { ... interface I { ... } ... }Sun's response agrees with our interpretation that this usage is illegal.
Problem Reports Resolved:
This version adds support for the -deprecation
option.
Applied patch to configure.in
for mips
from Henner Zeller.
I have been working with BeOS in my spare time and have found that Jikes compiles and runs on BeOS (Intel version) without having to change anything (neither makefile or source).
Problem Reports Resolved:
jikesDoc.jar
from
http://www.idsi.net/~daly.
He reports that Netscape wants to open this file by default so be
sure to right-click on the file and choose "Save link as".
CLASSPATH
contains non-existent file.switch
statement.C++
compilers object when see template definitions in the
.cpp
file.
man
page sent in by
Pierpaolo Fumagalli.
autoconf
support for Linux libc5 builds sent to Jikes-Patches back in March by
C. Scott Ananian.
I represented Jikes in the IBM booth at the just-concluded LinuxExpo in Raleigh, NC. Several people expressed interest in using Jikes once they saw its speed. One of the Java managers from SGI mentioned they had ported Jikes as soon as the source came out; the only complaint from their developers was that they now had less time for coffee breaks.
I gave two talks (one on the technical track, another on the business track) with emphasis on our experiences after releasing the source. About 70 people attended the first talk, about 30 the second.
I understand about 4000 people attended the Expo. Rob Malda of Slashdot stopped by to chat, and mentioned that IBM's booth was bigger than the entire exhibit area at last year's expo.
Tim Corringham writes
(24 May 1999) that he is provoding binary versions for another Amiga
version, this one using Unix style file notation, and requiring the
ixemul
Unix compatibility library. Details in the Ports
Section.
Jerry Heyman writes (27 May 99): that SCO is providing a version for UnixWare 7 (currently v0.41). Details in the Ports section.
This version consists mainly of changes to the code generator, as what began as a modest review turned into a major "spring cleaning". The code generator was recomputing some information that had already been computed by the front-end, and had otherwise not been updated to reflect many of the front-end changes recently put in place. There may be some regressions since we have touched parts of the code that have been stable for some time.
There are also a couple of bug fixes, consisting of some improved error messages, and a fix for a bad
assert in ast.h
that was recently reported.
In response to several user requests, the file names for downloading the
compiler now include the version number: jikes-050_tar.gz
,
etc. We will put version numbers on file names for jikestst
and jikespg
when they are next updated.
Kriton Kyrimis is now producing binaries of Jikes for Amiga; see the "Ports" section for details.
Jikes will be part of the IBM presence at the Linux Expo at the Raleigh Convention Center in Raleigh, NC, May 20-22. I will be at the IBM Booth, and will also give a talk on our experience starting and running the Jikes project, and plan to emphasize what has happened since we released the source in December, 1998. I would like to include user feedback in the talk, as noted below.
We have started a section Feedback in the Jikes Discussion Database where you can make comments and suggestions about the Jikes Project. Suggestions on how we can do a better job are especially welcome.
We plan to include a summary of the comments received in the talk to be given at LinuxExpo.
This version fixes a bug (reported on jikes-bugs on 14 April) related to calling a private method in an enclosing class that was introduced in v0.48.
+M=filename
)
Bill Pugh of the University of Maryland pointed out that Jikes should use static methods to enable access to private fields and methods of enclosing types, and Jikes now generates static methods.
Several readers sent in problem reports related to the handling of
"international" characters in the input source, and included
examples that demonstrated the problem was in a faulty table used to
represent the classification of Unicode characters. Instead of trying
to interpret the various descriptions of Java's interpretation of
Unicode, we have added a new program gencode.java
that
probes the classification used by the Java library and writes
out the source for files code.h
and code.cpp
.
We obtained the same results running Sun's reference VM for Windows for JDK versions 1.1.6
and 1.2.
This work also uncovered a problem in the handling of these
characters for Solaris Sparc. Turns out that the type wchar_t
was
declared as a long
and when a char
value (even unsigned char
)
was copied to a wchar_t
, it was sign-extended. This problem used to cause Jikes to crash
on some inputs.
+M=filename
to list direct dependencesJikes now supports a new form of the +M
option,
+M=filename
, to request a direct dependence report be written
to the specified file. Each clause begins with a line of the form
file_specification : class_namewhich gives the file containg the definition of a class. The file specification is either the name of a file or the name of a
jar
or
zip
file followed by the name of a member of the file enclosed in
parentheses.
A clause may be followed by zero or more lines containing the names of classes directly referenced by the class; each such line begins with whitespace. A reference introduced as the result of referencing the value of a static final constant is preceded by an exclamation point (!).
Class names are given in the internal form for a fully qualified name used by the Java virtual machine (section 4.2 of the JVM specification).
This option represents our first attempt to answer a number of requests to provide a report of the dependence information in a form other than a Makefile, and is based in part on recent discussions with Roger Hoover of NaturalBridge. Note that the format may change, as this is a work in progress.
Our intent is to provide a format suitable for writing tools that analyze dependence, and not to provide the tools as part of the compiler itself.
Keith Clayton is now producing binaries of Jikes for Power PC. The URL can be found in the "Ports" section.
We have still not had time to add all the 1.2-related command-line options; look for them in the next version.
We are still working through the 1.2 JCK (Java Compatibility Kit) tests. There remain a small number of discrepancies in the results that need to be sorted out. We also hope to have this done by the next release.
We have fallen behind responding to some of the recent mail and bug reports while getting this version ready, and plan to deal with the backlog as soon as we work through the 1.2 tests.
We have cautioned in the past about using Microsoft's compiler to build Jikes since we had noted some different results in some of the floating-point arithmetic tests in version 1.1.4 of Sun's JCK. We recently re-ran these tests using a version of Jikes compiled with version 6.0 of Microsoft's Visual C++ compiler, and found that while this version failed one test that passed using our current (IBM) compiler, it also passed another test that failed when using Jikes built using the IBM C++ compiler. Both problems were in the fringe area of floating-point support. In any event, we no longer see any reason not to use VC++ to compile Jikes.
We will also review the use of Microsoft's compiler after completing the review of 1.2 test results, as this version of the JCK contains a large amount (about 200,000 lines) of tests of floating-point arithmetic.
We have updated the stable version on alphaworks Jikes to v0.47. Note that the URL for Jikes on alphaworks is now http://www.alphaworks.ibm.com/tech/jikes
We're almost done adding the 1.2-related changes to Jikes. Remaining work includes some new options, and some outstanding bug fixes; we expect to put this out soon.
Ken Coar is helping to provide better access to the CVS source tree. We plan to make available a mailing list whose subscribers will receive an e-mail in "patch" form for each source commit as it is made, and plan also to offer "cvsweb" access, in the same form as used by the Apache group; see for example Apache cvsweb server
We have also dropped the latest-cvsjikes_tar.gz
file,
as we have found it more convenient and useful to provide new
versions in both binary and source form, rather than to provide just
a snapshot of the CVS tree, in a form only useful to those with CVS
and willing to compile the source.
+$
option has been dropped.+V
option is now +P
(pedantic).contrib.htm
to (eventually) include list of contributors to the code.Version 0.43 supports the Java 1.2 (aka Java 2) language changes.
Beginning with this release, we will distinguish the "development" version of Jikes from a "stable" version. We will first publish development versions on our Research web site, and will promote a version to stable status by publishing it on the alphaworks site only after it has survived a few days of use in the field.
If you are just interested in using Jikes to compile your program then you should Download the stable version. We will announce a new stable version only after alphaWorks has published it, via our mailing lists; you can subscribe via
echo subscribe | mail jikes-announce-request@watson.ibm.com
We will also discontinue publishing the source for the test suite and parser generator at alphaWorks, and only provide it from the Research site.
If you wish to live on the "bleeding edge" and work with development versions as they appear, then you should Download the development version. You should also follow the relevant mail lists:
echo subscribe | mail jikes-announce-request@watson.ibm.com echo subscribe | mail jikes-request@watson.ibm.com echo subscribe | mail jikes-bugs-request@watson.ibm.com echo subscribe | mail jikes-patches-request@watson.ibm.com
The Ports section now has links to these new distributions.
We currently provide a binary version for Solaris Sparc built using IBM's C++ compiler.
We understand some users working with the source use Sun's compiler while others use gcc or egcs. We have gotten a number of e-mails and patches related to the Solaris version, and have updated the Makefile. We would like to clear up any outstanding issues soon and ask our Solaris users to try to build the compiler on their system and report any problems.
Note that some users have reported problems relating to use of
"IFDIR", etc. If you have similar problems review file
config.h
especially the section re
STAT_POSIX
near the start, as you may need to specify
-DSTAT_POSIX
in the Makefile.
We would also appreciate a volunteer willing to build binary versions for Solaris Intel and publish them on the web. Let us know if you are interested and we will add the URL to the Ports section.
From time to time you may see mention of the "Jikes Discussion Database", usually as part of a note about a problem report.
We started the database about one year ago. It's a Lotus Notes Database, published to the web using Lotus Domino. You can access it via Jikes Discussion Database. There is also a link to it on the main Jikes page at Research.
It was our main vehicle for communicating with our users before releasing the source, and contains problem reports, suggestions, comments, e-mail with Sun, etc.
Though we now publish files and news on our web site, we continue to use the Database for the following:
The user interface leaves much to be desired. You will be presented with an initial page giving instructions. Click on "By Topic" to proceed.
We will now publish new releases first on our web page. New releases will include a snapshot of the CVS source tree at the time of the release, flattened copies in "zip" and "gzip" form of the sources for those who just want to work with particular parts or who don't have CVS, and binaries that we have built from the sources. Part of building a release is running the tests available to us.
We will try to publish snapshots of the CVS source tree at frequent intervals. Note that we make no promises about the snapshots -- the compiler might not even compile, we might not have done any testing, etc.
We are now using a revised license that we believe
answers many of the objections raised to the license released in
December, though we wouldn't be surprised to see more objections
raised about the "termination" clause. We are now using the same
language for "termination" as the SecureMailer source release
(available from alphaWorks). As always, address questions and
comments about licensing issues to the mail list
jikes-license@watson.ibm.com
. You must subscribe before
you can post; instructions on subscribing can be found on the Jikes home page.
Since we anticipate that the compiler source and test suite source
will not always be updated at the same time, we have separated them.
This also avoids having the "60 per cent" rule apply to their
aggregation; it now applies to each separately. The same license is
used for each, except for the name: "Jikes Compiler" and "Jikes Test
Suite", respectively. The current release is v0.42 (CVS tag v0-42
) for the compiler,
v1.0 (CVS tag v1-0
) for the test suite.
Several users noted that the binaries on alphaWorks were still governed by the standard alphaWorks license, one that does not allow commercial use and expires after 90 days. We now use the same license for binary distributions as for the source, since after all our binary distributions are just a redistribution of the source in binary form.
We have released a new version of the compiler. This includes a number of bug fixes: , for Problem Reports 270, 297, 298, 300, 302, 304, 306, 308, 309, 311, 312, 313, 315, 320, 321, 324, 326, 331, and 335.
We are continuing to work through outstanding problem reports, and hope to catch up with the backlog soon. At that point we will try to bring the compiler into increased conformance with some of the language changes introduced in the 1.2 (aka Java 2) release of Sun's JDK.
We have revised the FAQ, merging in the material formerly in
jikesfaq.htm
(the FAQ that accompanied the binary
release) and jikesos.htm
(the FAQ distributed with
original source release) into a new file jikes.htm
.
Please be sure to read it, especially if you encounter problems with
CLASSPATH
settings.
We have started maintaining the source using CVS. Another group at Research is setting up a CVS server machine, and we hope to use that to publish the CVS tree when the machine becomes available. In the interim, we will publish snapshots of the CVS tree in the Jikes Discussion Database.
Jikes will be part of the IBM presence at the LinuxWorld Expo at the San Jose Convention Center in San Jose, CA, March 2-4. I'll pack the CVS tree in my suitcase and set up shop in the IBM booth. Lacking anything else to do, and if no progress has been made, I intend to work on "-deprecated" support and better reporting of dependence info. Hope to see you there. Two of my fellow contributors, Glenn Kasten and Vadim Zaliva, should be there some of the time.
We have started a section Ports to describe known ports of Jikes.
Work continues on setting up the mailing lists. We hope to have them up next week.
I believe I have caught up with the backlog of bug reports sent to me via e-mail, and have made about 30 new entries in the Jikes Discussion Database in the last two days. I didn't bother to review them all (I'm officially on vacation) but did copy them all over. Some duplicate prior entries, and some may have been fixed in v0.41, but I thought it best just to post them all for the sake of completeness, so we can sort out the proper disposition later.
I have started "Contributors" section, and have posted first cut on our web page. Some of the information is incomplete; I hope to have all the details soon.
The release of the Jikes source has met with an enthusiastic reception. We are very happy about this and look forward to working together actively with our new-found co-developers. We sense everyone is eager to get to work, but we ask your patience.
First, please remember there are only the two of us -- Philippe and myself. We have been working non-stop since early December 1997. The only vacation we took this year was about eight days in early August. I spent that time on the Maine coast; I also spent at least two hours a night reading the comments from Slashdot readers on the issue "Should IBM release the source for Jikes?", preparing a summary of the comments, and starting the proposal to management to release the source. While on his vacation, Philippe spent several hours a day in the Wellfleet public library adding a cache-based file/directory management system; one result of this was to reduce the time needed to compile a 400,000 line subset of San Francisco from 1500+ seconds to 110 seconds on a 150Mhz Pentium laptop running Win95.
I also got quite stressed out getting the source out in time. We didn't get the final wording of the license until Friday noon, just three days before launch. I spent that weekend writing the FAQ and web-site contents, and packaging the files (thanks to Nelson Minar for uncovering a bug in the ZIP version late Sunday evening). Indeed, a couple of weeks ago I had the following exchange with my daughter Jennifer as I was driving her to school:
Dave: I probably have to go into work this Saturday, and perhaps Sunday as well.When I related this incident to a senior manager, he said something along the lines of "Not a bad idea!". I'm still recovering, and do need some rest, but promise to be eager to go in the new year.
Jennifer: Dad, are Saturday and Sunday regular work days at IBM?
Dave: (gulp)
Philippe is also getting some rest, and says he probably won't be hacking on the code. This is good news, as I feared he would come back from vacation with several thousand lines of diff's for the source. So we will probably all be able to start work with source quite close to that first released once the licensing issues are sorted out.
One of the arguments we put forth for releasing the Jikes source was that it would help establish a precedent for IBM Research, and also provide useful experience in what is needed to set up a source-based development site and how to run it. Several people and groups have made generous offers to run the mailing lists, provide CVS support, etc. However, it's important that we learn to do it ourselves, even it means some delay to our eager developers chafing at the bit to get hacking.
We will use CVS to maintain the source, and will make available the full source tree in read-only mode. Since IBM Research is still actively involved, only Philippe or I will make actual changes, though we will make every effort to include voluntary user contributions exactly as received, with credit given where credit is due.
I asked Vadim about problem-reporting systems. He says he has used Gnats and likes it. So we'll go with that unless a better suggestion comes in. We hope to have it in place soon.
I've asked Vadim Zaliva (lord@crocodile.org) to serve as temporary "lord of the patches" until we add CVS and ftp support, and he has agreed to collect patches for Jikes at his website. You can get them via Jikes Patches.
Search for "jikes" at yahoo. Nice job, yahoo.
We thank Dave Whitinger of LinuxToday for posting some of our recent news articles, and especially for his posting of Jennifer's "Shaking Hands" Jikes Masthead. Indeed, he even offered to put it in their banner queue; Jennifer and I are thrilled -- and very grateful.
I was a participant in a conference call with Bruce Perens yesterday, along with an IBM manager and attorney. In the words of diplomacy, "It was a frank and open exchange". We discussed Bruce's concerns about the Jikes License and also the question first raised by the Debian group about releasing the source for the Jikes Parser Generator.
At the end of the call, Bruce said he would prepare a report on the call and submit it to slashdot. He graciously offered to send us a preliminary copy for our review. We declined, as we trusted his judgment. We also said we would not write our own report, lest confusion result from two reports trying to relay the same news.
I apologize for the delay in setting up the Jikes mailing lists, and I appreciate the support of slashdot and LinuxToday in posting my notes on their sites, so I could honor my pledge to have all discussions in "full public view".
I ordered a new 6 gig disk for the server machine (100 Mhz Pentium, 32MB memory) a few weeks ago. I had two 1 gig disks. A colleague suggested I should wait for new disk to arrive, as what I had might not suffice to manage the mail lists. The disk arrived yesterday morning. I had a lot of meetings that day, but did find the time to install the disk and did a fresh install of RedHat 5.2.
I've asked for some help in setting up the system. Though I've used Unix for almost two decades, I've hardly ever had the opportunity to log in as root. Indeed, I'm still such a newbie in this area that when I log in as root I still feel a rush -- it's like sitting in a Ferrari and putting the pedal to the metal. Away we go!
Unfortunately, I have proven very adept at doing a great deal of ecological damage to a pristine Linux landscape in a short time. My specialty is reducing /etc/aliases to rubble -- think of the oft-shown TV footage of an old building being demolished by a few pounds of dynamite.
I've asked for help doing things right, and hope it will arrive soon. If not, I'll steam on and promise to be more careful. I will make a best effort to be able to accept subscriptions early next week.
I drive my daughter Jennifer to school every morning. Ever since the start of the school year, she's been the object of a constant flood of news and concerns about releasing the Jikes source code. She has always been a rapt listener; indeed, I boasted to a friend recently that my daughter was "THE world export in open source licensing issues in the 14-and-under age category".
We both share the same birthday -- December 8. My favorite present was a set of six Jikes Coupons. Here is the text of a Jikes Coupon:
Jikes Coupon Value: 10 Minutes This coupon entitles David Shields to 10 free minutes of Jennifer's undivided attention to talk about Jikes or whatever he sees fit. During this time, Jennifer may not think or say in any way, "Oh, gosh, here he goes again." Even phrases such as, "We're playing with the big boys" will be tolerated with a pleasant nod and smile.
I realized that I had mistaken a pleasant node and smile for keen interest and concern. However, I have learned a valuable lesson and it forms the basis of my new policy when asked about open source licensing issues.
While I had a role in drafting the Jikes License, now that it is out it has become the responsibility of the IBM attorneys, and only they have the authority to effect changes to it. My making statements about it, especially misdirected efforts to interpret it, can only lead to confusion. So from now on, when asked to speak about these matters my response will be silent and simple -- a pleasant nod and a smile.
I have great confidence in our attorneys. I know they want to do the right thing. I have found them to be quite pleasant, and have even seen them smile from time to time.
I know that all fellow members of the slashdot community join me in congratulating Rob Malda on completing the work for his undergraduate degree. Sengan informs me Rob is getting a B.S. in Computer Science, and also a B.A. (or perhaps minor) in the Arts. I regret that I do not know the name of his college. I know he is eager to resume hacking.
We posted the source for Jikes at 1PM EST on Monday, December 7th. I received an e-mail the same day 9:13 PM from Vadim Zaliva (lord@crocodile.org) that included a patch file. He also posted the patch in the "Discussion Area" for Jikes Source at the alphaworks site.
Philippe is on vacation, and I didn't get a chance to speak to him after we published the source until late Wednesday afternoon. He asked me if I had seen the patch at alphaworks. I said I had gotten an e-mail but hadn't had time to look at. He said he was "flabbergasted". Though the patch contains only a few lines, it shows a good understanding of much of the compiler structure. I view this as our first success story, and I am sure there are more to come; I view it as a joint tribute to Philippe's design and Vadim's demonstrated skills.
At the end of the call, we had the following exchange:
Philippe: Dave, this guy is good. Think he could come work with us?I asked Philippe to report in full on the technical knowledge displayed, but he has some personal business, and I have gone ahead here, as I did not want to delay recognizing Vadim's work. We are pleased to welcome him aboard as the first contributor to join our project since we released the source (there are other contributors I wish to name for work done before we released the source, and I'll try to provide details on our web site early next week).Dave: Philippe, he already is working with us -- and for free!
It's hard to express a "pleasant nod and a smile" over the internet. It's also hard to express a hand shake. My daughter Jen designed a great masthead for the Jikes web site using a masthead design tool built by Chet Murthy and others (Chet is the guy who used to do the libc5 builds -- I told him he had done his last build late last week). Unfortunately, IBM requires a uniform look-and-feel on its web pages, and I am not able to use her work, though I will put up a copy elsewhere on the Jikes web site soon, and am enclosing a copy of it along with this note, and hope that slashdot and LinuxToday can find a way to display it as a sign of welcome -- both to Vadim and to all the future contributors that I expect to meet soon via the Jikes mail lists.
On behalf of IBM Research, Philippe Charles and Dave Shields are pleased to announce that the IBM Research Jikes Compiler is now an Open Source Project. You can download the source now.
We will continue to work on the compiler, emphasizing -- as we always have -- strict adherence to the Java Language Specification, and will also continue to seek Sun's guidance on the proper interpretation of the specification where we find the intent to be unclear.
All discussion will be carried out in full public view using mailing lists. You can subscribe here.
We look forward to collaborating with the Java and Open Source communities to make Jikes an even better compiler, and will welcome voluntary contributions early in 1999 -- after we've all had a chance to get acquainted via the mailing list before hacking away, and after the two of us take some vacation time.
We wish to thank the many Slashdot readers who gave of their time to respond to our query "Should IBM Release the Source Code for Jikes?" (see the Comment Summary) , and also thank Sengan Baring-Gould (slashdot), Nelson Minar (MIT) and Bruce Perens (opensource.org) -- they helped make this happen.